package com.aw.manual.ejemplo9;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

/**
 * User: gmc
 * Date: 27/05/2010
 */
@Component
public class AdministradorDeEntrevistas {
    @Autowired
    EntrevistaScope entrevistaScope;
    @Autowired
    private Entrevistador entrevistador;
    @Autowired
    private ApplicationContext appCtx;

    public void realizarEntrevistas() {
        Candidato primerCandidato = obtenerCandidato();
        iniciarEntrevista(primerCandidato);
        terminarEntrevista();

        Candidato segundoCandidato = obtenerCandidato();
        iniciarEntrevista(segundoCandidato);
        terminarEntrevista();
    }

    private void iniciarEntrevista(Candidato candidato) {
        entrevistaScope.inicializar();
        entrevistador.entrevistar(candidato);
    }

    private void terminarEntrevista() {
        entrevistaScope.finalizar();
    }

    private Candidato obtenerCandidato() {
        return appCtx.getBean(Candidato.class);
    }

}
